The present invention relates generally to simulating a computer network, and more specifically to a system and method for large scale testing and validation of optical switching equipment and software.
As the need for data and voice communications bandwidth has steadily increased, communication networks have grown to include ever larger numbers of sophisticated networking devices, such as optical switches. These networking devices often include complex data forwarding functionality, which is typically provided using a combination of software and hardware components. For example, networking devices often include multiple, interconnected, printed circuit boards, sometimes referred to as “blades” or “cards”, one or more of which may include microprocessor-based subsystems for execution of various software components. The operation of such networking devices is significantly dependent on the specific network configuration in which they are deployed. Accordingly, testing of such devices should include tests of their operation in a variety of network configurations.
For example, during development of software for execution within a networking device, software verification testing should test the software in a variety of network configurations. Because the number of networking devices required to perform a comprehensive set of such tests may be relatively large, and because the amount of time necessary to reconfigure actual networking devices into the various specific configurations to be tested may be so great as to be impractical, testing based on emulation of various network configurations may sometimes be desirable. In fact, a software emulation system capable of emulating large and complex networks would significantly reduce overall software development time and equipment expense.
Additionally, it may be desirable to test proposed or hypothetical network configurations when designing a new network, or when planning modifications to an existing network. In this regard, customers of networking device providers often wish to determine how a specific configuration of devices will operate before purchasing the actual equipment. Network emulation may thus advantageously be used during network planning and design, and to perform “what if” testing of possible network modifications.
Various existing systems have attempted to provide effective software emulation of communication networks. Some such existing systems have emulated operation of networking device software using software that has been “ported” from an execution environment present on the networking devices, to another execution environment used within the emulator system. For example, the execution environment within a networking device may include a microprocessor, operating system, and/or other aspects which differ from those used in the emulation system. In order for the networking device software to execute within the emulation environment, it has, in such existing systems, been modified or “ported” from the form in which it is used within the networking device. However, such code modifications raise issues of whether the modified code behaves the same as the actual code that is or will be deployed in the networking device. Accordingly, the accuracy of testing provided by such existing systems may be poor.
For the reasons stated above, it would be desirable to have a network emulation system that supports testing of large numbers of complex networking devices using code that is not modified from the form in which it would be used within the actual networking devices.